home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / lbas.arc / LBLBASIC.BAS (.txt) < prev   
Encoding:
GW-BASIC  |  1984-04-24  |  2.0 KB  |  52 lines

  1. 900  DEFINT A-Z:DIM PTAB$(1000),LTAB(1000):TRUE=(1=1):FALSE=NOT TRUE:PTMAX=-1:CLS
  2. 905  INPUT "Enter   input filename: ",INFILE$:INPUT "Enter  output filename: ",OUTFILE$
  3. 907  INPUT "Enter listing filename: ",LSTFILE$:FOR PASS=1 TO 2
  4. 910  PRINT "Beginning pass ";PASS;" ";TIME$:FILENO=2:OPEN INFILE$ FOR INPUT AS #FILENO
  5. 915  IF PASS=1 THEN OPEN LSTFILE$ FOR OUTPUT AS #1 ELSE OPEN OUTFILE$ FOR OUTPUT AS #1
  6. 1002  LNBR=1000:LINC=1:OU$=""
  7. 1003  GOSUB 1009:IF STMT$="" THEN 1008
  8. 1004  IF (LEN(OU$)+LEN(STMT$)>200) OR FORCENEW THEN GOSUB 1046:OU$=""
  9. 1005  IF OU$<>"" THEN OU$=OU$+":"
  10. 1006  OU$=OU$+STMT$:IF FOUNDIF THEN FORCENEW=TRUE:FOUNDIF=FALSE
  11. 1007  GOTO 1003
  12. 1008  GOSUB 1046:CLOSE #1:CLOSE #FILENO:NEXT PASS:BEEP:PRINT "End of run ";TIME$:BEEP:END
  13. 1009  STMT$="":NEWLAB=FALSE
  14. 1010  IF EOF(FILENO) THEN 1026
  15. 1011  LINE INPUT #FILENO,IN$:IF PASS=1 THEN PRINT #1,IN$
  16. 1012  INMAX=LEN(IN$):IF INMAX<1 THEN 1010
  17. 1013  W$=LEFT$(IN$,1):INIX=1:IF W$="*" THEN 1010
  18. 1014  IF W$="@" THEN GOSUB 1028
  19. 1015  GOSUB 1035:IF WORD$="COPY" THEN 1024 ELSE 1017
  20. 1016  GOSUB 1035
  21. 1017  IF LEFT$(WORD$,1)="@" THEN GOSUB 1030
  22. 1018  IF STMT$<>"" AND WORD$<>"" AND RIGHT$(STMT$,1)<>":" AND WORD$<>":" THEN STMT$=STMT$+" "
  23. 1019  STMT$=STMT$+WORD$:IF WORD$="IF" THEN FOUNDIF=TRUE
  24. 1020  IF WORD$<>"" THEN 1016
  25. 1021  IF INIX<=INMAX THEN IF W$="~" THEN 1010
  26. 1022  IF STMT$="" THEN 1010
  27. 1023  RETURN
  28. 1024  GOSUB 1035:FILENO=FILENO+1:ON ERROR GOTO 1025:OPEN WORD$ FOR INPUT AS #FILENO:ON ERROR GOTO 0:PRINT "Now copying ";WORD$:GOTO 1010
  29. 1025  ON ERROR GOTO 0:BEEP:PRINT "File ";INFILE$;" not found; ignored":FILENO=FILENO-1:GOTO 1010
  30. 1026  IF FILENO=2 THEN 1023
  31. 1027  CLOSE #FILENO:FILENO=FILENO-1:GOTO 1010
  32. 1028  FORCENEW=TRUE:GOSUB 1035:IF PASS=2 THEN RETURN
  33. 1029  PTMAX=PTMAX+1:PTAB$(PTMAX)=WORD$:LTAB(PTMAX)=LNBR+LINC:RETURN
  34. 1030  IF PASS=1 THEN WORD$="9999":RETURN
  35. 1031  PTIX=0
  36. 1032  IF PTIX>PTMAX THEN BEEP:PRINT "Unresolved label: ";WORD$:WORD$="9999":RETURN
  37. 1033  IF PTAB$(PTIX)=WORD$ THEN WORD$=RIGHT$(STR$(LTAB(PTIX)),4):RETURN
  38. 1034  PTIX=PTIX+1:GOTO 1032
  39. 1035  WORD$="":QUOTE=FALSE
  40. 1036  IF INIX>INMAX THEN RETURN
  41. 1037  IF MID$(IN$,INIX,1)=" " THEN INIX=INIX+1:GOTO 1036
  42. 1038  W$=MID$(IN$,INIX,1):IF QUOTE THEN 1042
  43. 1039  IF W$=":" THEN IF WORD$="" THEN WORD$=W$:INIX=INIX+1:RETURN
  44. 1040  IF W$=":" OR W$="'" OR W$=" " OR W$="~" THEN RETURN
  45. 1041  IF W$<" " OR W$>"z" THEN 1044
  46. 1042  IF W$=CHR$(34) THEN QUOTE=TRUE-QUOTE
  47. 1043  WORD$=WORD$+W$
  48. 1044  INIX=INIX+1:IF INIX<=INMAX THEN 1038
  49. 1045  RETURN
  50. 1046  IF PASS=2 AND OU$<>"" THEN PRINT #1,RIGHT$(STR$(LNBR),4);" ";OU$
  51. 1047  LNBR=LNBR+LINC:FORCENEW=FALSE:RETURN
  52.